feat(session): added JTI claim #596
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello !
With this PR, I’m proposing the addition of a jti (JWT ID) claim to both the accessToken and refreshToken, along with tracking this identifier in the session document.
The main goal is to allow the system to track and enforce the latest active token pair for a given session.
How it works
jtiis generated each time a token pair is issued (on login or refresh).jtiis embedded in both tokens and saved in the corresponding session entry.@SessionJtiProtected()will compare the incoming token’s jti with the one stored in the session.This mechanism helps detect and block usage of old tokens, adding a layer of protection against token replay attacks.
Any mismatched jti could also be logged for auditing or anomaly detection.
This implementation is compatible with standard token issuance but may require adjustments if we decide to proceed with the optional refresh token rotation.